package tec;

import java.util.ArrayList;
import java.util.List;
import java.util.LinkedList;
import java.util.Iterator;

public class GreffonEstUn extends Autobus {

	private Collecte collecte;


	public GreffonEstUn(int nbPlaceAssise, int nbPlaceDebout)
	{
		super(nbPlaceAssise, nbPlaceDebout);
		collecte = new CollecteMem();
	}
	
	public GreffonEstUn(int nbPlaceAssise, int nbPlaceDebout, String fichier)
	{
		super(nbPlaceAssise, nbPlaceDebout);
		collecte = new CollecteFichier(fichier);
	}

	public void demanderPlaceAssise(Passager p)
	{
		GreffonEstUn.super.demanderPlaceAssise(p);
		collecte.uneEntree();
	}
	public void demanderPlaceDebout(Passager p)
	{
		GreffonEstUn.super.demanderPlaceDebout(p);
		collecte.uneEntree();
	}
	
	public void demanderSortie(Passager p) {
		collecte.uneSortie();
		GreffonEstUn.super.demanderSortie(p);
	}

	public void allerArretSuivant() throws TecInvalidException{
		
		collecte.changerArret();
		//GreffonEstUn.super.allerArretSuivant();

 		this.arret++;
		List <Passager> pCopy = new LinkedList<Passager>(this.passagers);

		for(Passager p : pCopy) {
			try {
				p.nouvelArret(this, this.arret);
			} catch (IllegalStateException e) {
				throw new TecInvalidException(e);
			}
		}
	}
	
	public void printCollected() {
		collecte.printCollected();
	}


}
